package cn.lili.modules.union.service;

import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.UnionMemberApply;
import cn.lili.modules.member.entity.dos.User;
import cn.lili.modules.member.entity.dto.UnionMemberApplyDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface UnionMemberApplyService extends IService<UnionMemberApply> {


    /**
     * 申请加入工会
     * @param unionMemberApplyDTO
     */
    void apply(UnionMemberApplyDTO unionMemberApplyDTO);

    /**
     * 邀请入工会
     * @param unionMemberApplyDTO
     */
    void invite(UnionMemberApplyDTO unionMemberApplyDTO);


    /**
     * 申请记录
     */
    Page<UnionMemberApply> getApplyByPage(String unionId, PageVO page,String status,String optype);


    /**
     * 我的申请
     * @param memberId
     * @param page
     * @return
     */
    Page<UnionMemberApply> getMyApplyByPage(String memberId, PageVO page);

    /**
     * 邀请我的
     * @param memberId
     * @param page
     * @return
     */
    Page<UnionMemberApply> getInviteMeByPage(String memberId, PageVO page);

    /**
     * 邀请记录
     * @param unionId 工会ID
     * @param page
     * @return
     */
    Page<UnionMemberApply> getInviteByPage(String unionId, PageVO page);

    //申请入会审核
    void applyAuth(String recordId, String status);

    //邀请入会审核
    void inviteAuth(String recordId, String status);

    //申请退出工会
    void quitApply(String memberId,String unionId);


    //退出工会审核
    void quitAuth(String recordId, String status);

    UnionMemberApply myQuitStatus();

    List<User> getListByName(String keyword);
}
